package day02;


import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;


/**
 * 僵尸游戏，启动类
 */
public class ZomBieGame extends JPanel {

    // 定义窗口的宽高
    public static final  int WIDTH = 1400;
    public static final  int HEIGHT = 650;

    public static BufferedImage bg_play;
    public static BufferedImage tallNutImg;

    // 创建一个静态块 加载资源图片
    static {
        try {
             bg_play =
                    ImageIO.read(new File("img/bg_play.jpg"));//加载背景图片
             tallNutImg= ImageIO.read(new File("img/plants/TallNut.gif"));//坚果全值图
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    ZomBieGame() {
        JFrame frame = new JFrame();//创建一个窗口对象
        frame.setTitle("植物大战僵尸微缩版");// 设置窗口的标题
        frame.setSize(ZomBieGame.WIDTH, ZomBieGame.HEIGHT);// 设置窗口的大小高度
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口默认关闭键
        frame.setLocationRelativeTo(null);// 设置窗口居中显示

        frame.add(this);// 设置窗口放的实物
        frame.setVisible(true);
    }
    // 扩大两个对象的作用范围
    Tallnut tallNut;
    ZomBie zomBie;
    /**
     * 游戏启动方法
     */
    public void action(){
        //System.out.println("游戏启动了~~~");
        tallNut = new Tallnut();// 坚果对象
         zomBie = new ZomBie();// 僵尸对象
        // 创建一个定时任务，60ms 间隔执行， 传入事件监听
        Timer timer = new Timer(60,new ActionListener(){
            // 重写方法
            @Override
            public void actionPerformed(ActionEvent e) {
                repaint();
            }
        });
        timer.start();// 任务启动
    }
    // 重写画的方法
    @Override
    public void paint(Graphics g){
        super.paint(g);
        // 画图 画背景
        g.drawImage(bg_play,0,0,null);
        g.drawImage(tallNutImg,tallNut.getX(),tallNut.getY(),null);

    }
    public static void main(String[] args) {
        // 创建 游戏类对象，调用无参构造，执行面板窗口
        ZomBieGame game = new ZomBieGame();
        game.action();

        // 以下对象只是为了测试tallnut zombie 类复制是否正确
       /* Tallnut tallnut = new Tallnut();
        System.out.println(tallnut);
        ZomBie zomBie = new ZomBie();
        System.out.println(zomBie);*/
    }
}
